iT邦幫忙

2024 iThome 鐵人賽

DAY 23
0
Software Development

我的SpringBoot絕學:7+2個專案,從新手變專家系列 第 23

Day23 第七個Spring Boot專案:使用Ollama完成簡單的AI

  • 分享至 

  • xImage
  •  

這個專案會採用Ollama實現簡易的AI,由於我們使用的是很基礎的模型,所以比不上ChatGPT、Copilot,可能產生文不對題的內容是很正常的,目的讓大家學習如何使用Spring AI。


在2024年,不懂得使用AI的人就落伍了。

去菜市場買菜,都會聽見大媽在聊AI。

坐捷運時,還可以聽到小學生大談自己手機的AI功能有多厲害。


今天,我想來點AI專案,我們會使用被別人訓練好的AI模型。

AI 的發展就像一場軍備競賽,不僅需要投入大量資金購買 GPU,還需要花費大量時間來訓練 AI 模型。

我們普通人很難從零開始打造自有的AI語言模型,但是我們可以站在巨人的肩膀上,使用這些企業已經訓練好的模型。


這個專案會串接Ollama,來完成AI聊天和辨識圖片內容的功能。

最初,我也曾考慮過使用ChatGPT,不過它的API需要付費才能使用,我認為這可能會一些初學者不太好,因此採用免付費的Ollama。

Ollama需要有8G以上的RAM,因為它是使用我們自己電腦的資源運作的。

Ollama安裝與設定

來這裡https://ollama.com/download下載並安裝Ollama,完成後打開命令提示字元輸入

ollama run llava:7b

按下Enter後,會開始下載訓練好的模型(4.7GB),等待完成就能開始和AI聊天了,可以輸入中文或英文,AI會做出回答。

建立Spring專案

接下來要在Spring專案串接Ollama,打開Spring Initializr。

按照下圖的設定建立專案

連接Ollama

開啟專案,修改application.properties添加Ollama相關的設定,base-url是Ollama API的位置,model是我們使用的模型名稱。

spring.ai.ollama.base-url=http://localhost:11434
spring.ai.ollama.chat.model=llava:7b

Controller

新增Controller/OllamaController.java,導入Ollama來完成AI聊天功能和辨識圖片的功能。

@RestController
public class OllamaController {
    //導入Ollama
    private final OllamaChatModel ollamaChatModel;

    public OllamaController(OllamaChatModel ollamaChatModel) {
        this.ollamaChatModel = ollamaChatModel;
    }

    //問Ollama問題,顯示AI模型的回答
    @RequestMapping("/ai")
    public String ollama(@RequestParam(value = "message") String message) {
        return ollamaChatModel.call(message);
    }
}

程式碼

https://mega.nz/file/0A9xSYiD#d9M2tDUrOk0VAolxk__34VVDnucXbFNuZjnatHcDjAE

測試

現在啟動專案,我們先測試AI問答的功能。

message=後面的就是我們傳送給AI的聊天內容。

在Response Body可以看到AI回答的內容。

接下來嘗試AI辨識圖片內容的功能

這次需要等待比較久才能看到回答,AI會用英文回答這是一張足球的圖片。

除了這些,它還會寫程式

寫到一半的程式,也可以交給它。

我們採用常見的Two Sum,因為URL不能使用<>{}[],所以把這些字元去除。


上一篇
Day22 第六個Spring Boot專案:小型電商購物車系統(8)串接Stripe API支付與使用SSL
下一篇
Day24 前端專案:安裝Node.js和Visual Studio Code
系列文
我的SpringBoot絕學:7+2個專案,從新手變專家31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言